{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Anaconda3\\lib\\site-packages\\h5py\\__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.\n",
      "  from ._conv import register_converters as _register_converters\n"
     ]
    }
   ],
   "source": [
    "from __future__ import absolute_import\n",
    "from __future__ import division\n",
    "from __future__ import print_function\n",
    "\n",
    "import collections\n",
    "import math\n",
    "import os\n",
    "import random\n",
    "from tempfile import gettempdir\n",
    "import zipfile\n",
    "\n",
    "import numpy as np\n",
    "from six.moves import urllib\n",
    "from six.moves import xrange\n",
    "import tensorflow as tf\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "url = \"http://mattmahoney.net/dc\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "def maybe_download(filename, expected_bytes):\n",
    "    local_file_name = os.path.join('D:\\\\', filename)\n",
    "    print(local_file_name)\n",
    "    if not os.path.exists(local_file_name):\n",
    "        local_file_name, _ = urllib.request.urlretrieve(url + filename, local_file_name)\n",
    "\n",
    "    state_info = os.stat(local_file_name)\n",
    "    if state_info.st_size == expected_bytes:\n",
    "        print('Found and verified', filename)\n",
    "    else:\n",
    "        print(state_info.st_size)\n",
    "        raise Exception('Failed to verify ' + local_file_name + '. Can you get it with browser?')\n",
    "    return local_file_name\n",
    "\n",
    "def read_data(filename):\n",
    "    with zipfile.ZipFile(filename) as f:\n",
    "        data = tf.compat.as_str(f.read(f.namelist()[0])).split()\n",
    "    return data\n",
    "\n",
    "#filename = maybe_download('enwik8.zip', 36445475)\n",
    "#filename = 'D:/enwik8.zip'\n",
    "#vocabulary = read_data(filename)\n",
    "#print('data size',len(vocabulary))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "def read_NPC_text():    \n",
    "    text_file_path = \"D:/SamKuang/python/AI_learning/project/pic speak/data/Flickr8k_text/Flickr8k.lemma.token.txt\"\n",
    "    text_content = open(text_file_path, 'r', encoding='utf-8').read()\n",
    "    row_data = text_content.split('\\n')\n",
    "    data = []\n",
    "    for row in row_data:\n",
    "        caption = row.split('\\t')\n",
    "        if len(caption) > 1:\n",
    "            row_words = caption[1]\n",
    "            words = row_words.split(' ')\n",
    "            if len(words) == 0:\n",
    "                print(words)\n",
    "            for word in words:\n",
    "                data.append(word)\n",
    "        else:\n",
    "            print(caption)\n",
    "    return data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['']\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "475749"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "vocabulary = read_NPC_text()\n",
    "len(vocabulary)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Most command words [['UNK', 406], ('a', 44469), ('.', 36579), ('A', 25112), ('in', 18963)]\n",
      "Sample data [3, 10, 4, 72, 561, 4197, 5, 1026, 7, 372] ['A', 'man', 'in', 'street', 'racer', 'armor', 'be', 'examine', 'the', 'tire']\n",
      "10 man --> 3 A\n",
      "10 man --> 4 in\n",
      "4 in --> 72 street\n",
      "4 in --> 10 man\n",
      "72 street --> 4 in\n",
      "72 street --> 561 racer\n",
      "561 racer --> 72 street\n",
      "561 racer --> 4197 armor\n"
     ]
    }
   ],
   "source": [
    "vocabulary_size = 7000\n",
    "\n",
    "def build_dataset(words, n_words):\n",
    "    count = [['UNK',-1]]\n",
    "    count.extend(collections.Counter(words).most_common(n_words-1))\n",
    "    dictionary = dict()\n",
    "    for word, _ in count:\n",
    "        dictionary[word] = len(dictionary)\n",
    "    data = list()\n",
    "    unk_count = 0\n",
    "    for word in words:\n",
    "        index = dictionary.get(word, 0)\n",
    "        if index == 0:\n",
    "            unk_count +=1\n",
    "        data.append(index)\n",
    "    count[0][1] = unk_count\n",
    "    reversed_dictionary = dict(zip(dictionary.values(), dictionary.keys()))\n",
    "    return data, count, dictionary, reversed_dictionary\n",
    "\n",
    "data, count, dictionary, reversed_dictionary = build_dataset(vocabulary, vocabulary_size)\n",
    "\n",
    "import json\n",
    "\n",
    "with open('./data/dictionary.json', 'w', encoding='utf-8') as f:\n",
    "    json.dump(dictionary, f)\n",
    "    f.close()\n",
    "    \n",
    "with open('./data/reversed_dictionary.json', 'w', encoding='utf-8') as f:\n",
    "    json.dump(reversed_dictionary, f)\n",
    "\n",
    "del vocabulary\n",
    "\n",
    "print('Most command words', count[:5])\n",
    "print('Sample data', data[:10], [reversed_dictionary[i] for i in data[:10]])\n",
    "\n",
    "data_index = 0\n",
    "#skip-gram model\n",
    "def generate_batch(batch_size, num_skips, skip_window):\n",
    "    global data_index\n",
    "    assert batch_size % num_skips == 0\n",
    "    assert num_skips <= 2*skip_window\n",
    "    batch = np.ndarray(shape=(batch_size), dtype=np.int32)\n",
    "    labels = np.ndarray(shape=(batch_size,1), dtype = np.int32)\n",
    "    span = 2 * skip_window + 1\n",
    "    buffer = collections.deque(maxlen=span)\n",
    "    if data_index + span > len(data):\n",
    "        data_index = 0\n",
    "    buffer.extend(data[data_index:data_index + span])\n",
    "    data_index += span\n",
    "    for i in range(batch_size // num_skips):\n",
    "        context_words = [w for w in range(span) if w != skip_window]\n",
    "        words_to_use = random.sample(context_words, num_skips)\n",
    "        for j, context_word in enumerate(words_to_use):\n",
    "            batch[i*num_skips + j] = buffer[skip_window]\n",
    "            labels[i*num_skips + j][0] = buffer[context_word] \n",
    "        if data_index == len(data):\n",
    "            buffer[:] = data[:span]\n",
    "            data_index = span\n",
    "        else:\n",
    "            buffer.append(data[data_index])\n",
    "            data_index +=1\n",
    "    data_index = (data_index + len(data) - span) % len(data)\n",
    "    return batch,labels\n",
    "\n",
    "batch, labels = generate_batch(batch_size=8, num_skips = 2, skip_window = 1)\n",
    "for i in range(8):\n",
    "    print(batch[i], reversed_dictionary[batch[i]], '-->', labels[i,0], reversed_dictionary[labels[i,0]])\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "7000"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(reversed_dictionary)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Initialized\n",
      "Average loss at step 0 217.34063720703125\n",
      "Nearest to mountain, hortons,, beyond,, ultimate,, Those,, reared,, swimsuit,, Person,, Fries,\n",
      "Nearest to two, loser,, bullfighter,, yellow-gold,, keel,, mic,, sideways,, chewed-up,, tickle,\n",
      "Nearest to orange, bullfight,, residential,, open-air,, Rival,, Mover,, crazy,, 625,, dobbermen,\n",
      "Nearest to one, speedboat,, Impeach,, democrat,, gazebo,, breakdancer,, goaltender,, underpass,, burlap,\n",
      "Nearest to from, great,, flips,, bushel,, illustration,, pf,, foam,, dimpled,, daredevil,\n",
      "Nearest to man, dome,, lit,, setter,, India,, Dalmation,, ca,, frilly,, keeper,\n",
      "Nearest to front, Youngle,, mantle,, tumble,, Chris,, pressure,, peacoat,, buck,, blazer,\n",
      "Nearest to its, checkerboard,, air,, slope,, lioness,, golden,, cemetery,, check,, sparse,\n",
      "Nearest to small, Linet,, Armenian,, kite,, tout,, relax,, Caribbean,, brow,, Building,\n",
      "Nearest to grass, force,, totter,, caution,, perfors,, Sheep,, leafless,, work,, Barechested,\n",
      "Nearest to Three, when,, long-bearded,, flute,, reflective,, inline-skates,, Dave,, commercial,, buddha,\n",
      "Nearest to over, versus,, weating,, wetland,, antiquated,, drenched,, an,, humorous,, punches,\n",
      "Nearest to ball, tug-of-war,, half,, document,, competiton,, leash,, aligator,, Sox,, rack,\n",
      "Nearest to watch, us,, Highland,, cigerette,, againest,, wheelie,, Challenge,, poster,, effects,\n",
      "Nearest to boy, Frog,, clover,, tend,, foreround,, bank,, mouth,, bun,, yuong,\n",
      "Nearest to child, tongue,, Santana,, perfomed,, headwear,, Family,, deliver,, cardigan,, manager,\n",
      "Average loss at step 200 11.983595481872559\n",
      "Average loss at step 400 6.611877902030945\n",
      "Average loss at step 600 4.559214955329895\n",
      "Average loss at step 800 3.8552256445884705\n",
      "Average loss at step 1000 3.172491654872894\n",
      "Nearest to mountain, A,, in,, a,, the,, be,, on,, man,, and,\n",
      "Nearest to two, A,, a,, in,, be,, the,, on,, man,, of,\n",
      "Nearest to orange, .,, a,, in,, be,, the,, on,, man,, of,\n",
      "Nearest to one, a,, be,, A,, the,, in,, on,, man,, of,\n",
      "Nearest to from, a,, .,, A,, on,, the,, man,, be,, from,\n",
      "Nearest to man, .,, A,, in,, be,, the,, a,, on,, and,\n",
      "Nearest to front, A,, a,, in,, the,, on,, man,, be,, person,\n",
      "Nearest to its, .,, a,, on,, the,, in,, be,, man,, of,\n",
      "Nearest to small, be,, .,, in,, a,, on,, man,, the,, of,\n",
      "Nearest to grass, in,, A,, a,, the,, be,, on,, man,, and,\n",
      "Nearest to Three, .,, a,, be,, in,, on,, the,, man,, and,\n",
      "Nearest to over, in,, A,, a,, be,, on,, the,, man,, of,\n",
      "Nearest to ball, .,, in,, a,, the,, on,, be,, man,, ball,\n",
      "Nearest to watch, .,, be,, a,, on,, the,, in,, man,, of,\n",
      "Nearest to boy, in,, the,, a,, A,, be,, on,, man,, boy,\n",
      "Nearest to child, A,, in,, a,, the,, on,, be,, man,, child,\n",
      "Average loss at step 1200 2.2391954097747804\n",
      "Average loss at step 1400 2.3158354461193085\n",
      "Average loss at step 1600 2.0050610659122468\n",
      "Average loss at step 1800 1.753479088306427\n",
      "Average loss at step 2000 1.5369963731765748\n",
      "Nearest to mountain, A,, .,, on,, man,, the,, be,, a,, jump,\n",
      "Nearest to two, on,, the,, .,, in,, a,, be,, of,, man,\n",
      "Nearest to orange, A,, in,, on,, man,, be,, the,, a,, of,\n",
      "Nearest to one, on,, man,, the,, in,, be,, .,, a,, person,\n",
      "Nearest to from, in,, A,, .,, be,, man,, with,, a,, the,\n",
      "Nearest to man, on,, in,, .,, be,, the,, a,, A,, and,\n",
      "Nearest to front, man,, in,, A,, the,, on,, be,, a,, and,\n",
      "Nearest to its, be,, the,, on,, A,, man,, a,, and,, in,\n",
      "Nearest to small, in,, .,, be,, a,, the,, with,, person,, man,\n",
      "Nearest to grass, A,, on,, the,, in,, man,, be,, a,, and,\n",
      "Nearest to Three, .,, be,, A,, in,, man,, with,, and,, a,\n",
      "Nearest to over, .,, in,, man,, of,, be,, and,, the,, A,\n",
      "Nearest to ball, on,, .,, the,, man,, A,, a,, be,, ball,\n",
      "Nearest to watch, .,, on,, A,, man,, be,, a,, the,, and,\n",
      "Nearest to boy, man,, on,, the,, be,, in,, of,, boy,, A,\n",
      "Nearest to child, in,, man,, the,, on,, be,, A,, a,, jump,\n",
      "Average loss at step 2200 1.6215765199661254\n",
      "Average loss at step 2400 1.6547090919017793\n",
      "Average loss at step 2600 1.5281202483177185\n",
      "Average loss at step 2800 1.396574552297592\n",
      "Average loss at step 3000 1.567345287322998\n",
      "Nearest to mountain, A,, .,, the,, in,, jump,, on,, of,, and,\n",
      "Nearest to two, the,, on,, in,, man,, jump,, be,, of,, and,\n",
      "Nearest to orange, A,, in,, on,, the,, man,, jump,, be,, a,\n",
      "Nearest to one, jump,, A,, a,, and,, ride,, the,, on,, of,\n",
      "Nearest to from, .,, A,, the,, in,, man,, jump,, person,, and,\n",
      "Nearest to man, the,, .,, A,, in,, on,, jump,, person,, and,\n",
      "Nearest to front, man,, A,, .,, on,, jump,, person,, in,, and,\n",
      "Nearest to its, man,, in,, A,, .,, on,, of,, and,, ride,\n",
      "Nearest to small, A,, in,, .,, the,, person,, a,, be,, man,\n",
      "Nearest to grass, .,, in,, the,, man,, on,, jump,, person,, of,\n",
      "Nearest to Three, on,, jump,, man,, the,, .,, and,, in,, player,\n",
      "Nearest to over, the,, in,, .,, of,, jump,, man,, with,, person,\n",
      "Nearest to ball, the,, A,, man,, on,, in,, .,, jump,, person,\n",
      "Nearest to watch, the,, .,, man,, in,, on,, and,, of,, be,\n",
      "Nearest to boy, .,, the,, person,, A,, in,, boy,, on,, jump,\n",
      "Nearest to child, the,, on,, .,, man,, jump,, in,, a,, person,\n",
      "Average loss at step 3200 1.3274267053604125\n",
      "Average loss at step 3400 1.4463902423381805\n",
      "Average loss at step 3600 1.2079766910076142\n",
      "Average loss at step 3800 1.1227658038139343\n",
      "Average loss at step 4000 1.3586123000383377\n",
      "Nearest to mountain, .,, man,, in,, the,, on,, be,, person,, ride,\n",
      "Nearest to two, in,, the,, be,, of,, ride,, .,, on,, and,\n",
      "Nearest to orange, .,, in,, man,, the,, be,, on,, person,, white,\n",
      "Nearest to one, the,, man,, in,, .,, player,, on,, bike,, his,\n",
      "Nearest to from, on,, in,, man,, .,, with,, the,, person,, and,\n",
      "Nearest to man, A,, .,, the,, on,, in,, person,, player,, be,\n",
      "Nearest to front, man,, the,, in,, .,, person,, on,, jump,, with,\n",
      "Nearest to its, A,, .,, man,, person,, on,, and,, of,, player,\n",
      "Nearest to small, the,, in,, .,, on,, man,, a,, player,, with,\n",
      "Nearest to grass, in,, man,, on,, .,, a,, the,, and,, be,\n",
      "Nearest to Three, in,, player,, .,, man,, of,, be,, and,, on,\n",
      "Nearest to over, A,, on,, man,, over,, .,, with,, and,, the,\n",
      "Nearest to ball, A,, the,, man,, on,, in,, person,, .,, player,\n",
      "Nearest to watch, on,, A,, .,, be,, man,, the,, player,, of,\n",
      "Nearest to boy, A,, on,, .,, the,, in,, person,, boy,, of,\n",
      "Nearest to child, .,, man,, in,, the,, person,, on,, a,, ride,\n",
      "Average loss at step 4200 1.192447799563408\n",
      "Average loss at step 4400 1.2187909308671951\n",
      "Average loss at step 4600 1.1914954221248626\n",
      "Average loss at step 4800 1.2155421472787857\n",
      "Average loss at step 5000 1.1160749708414077\n",
      "Nearest to mountain, .,, A,, a,, jump,, on,, the,, in,, and,\n",
      "Nearest to two, in,, on,, the,, and,, a,, A,, of,, player,\n",
      "Nearest to orange, in,, jump,, the,, a,, .,, A,, white,, man,\n",
      "Nearest to one, on,, .,, A,, a,, man,, jump,, basketball,, person,\n",
      "Nearest to from, a,, in,, man,, jump,, the,, of,, and,, .,\n",
      "Nearest to man, jump,, .,, person,, the,, on,, a,, white,, and,\n",
      "Nearest to front, jump,, a,, person,, the,, on,, in,, A,, .,\n",
      "Nearest to its, .,, the,, in,, jump,, of,, and,, player,, A,\n",
      "Nearest to small, .,, jump,, on,, be,, the,, in,, white,, A,\n",
      "Nearest to grass, man,, jump,, A,, on,, the,, person,, a,, in,\n",
      "Nearest to Three, .,, jump,, of,, a,, on,, be,, white,, basketball,\n",
      "Nearest to over, over,, .,, in,, and,, a,, the,, jump,, man,\n",
      "Nearest to ball, man,, jump,, in,, on,, the,, A,, .,, a,\n",
      "Nearest to watch, in,, on,, man,, and,, .,, the,, watch,, of,\n",
      "Nearest to boy, boy,, on,, person,, white,, jump,, a,, .,, the,\n",
      "Nearest to child, a,, .,, A,, jump,, in,, person,, be,, the,\n",
      "Average loss at step 5200 1.0876914201974868\n",
      "Average loss at step 5400 1.1562646894454955\n",
      "Average loss at step 5600 1.0573894172906875\n",
      "Average loss at step 5800 1.0065783972740174\n",
      "Average loss at step 6000 1.0995693100690842\n",
      "Nearest to mountain, man,, in,, bike,, person,, on,, the,, basketball,, jump,\n",
      "Nearest to two, A,, on,, be,, player,, and,, with,, person,, basketball,\n",
      "Nearest to orange, A,, in,, be,, white,, blue,, on,, man,, .,\n",
      "Nearest to one, in,, man,, jump,, basketball,, player,, the,, with,, on,\n",
      "Nearest to from, on,, A,, .,, man,, and,, be,, of,, person,\n",
      "Nearest to man, person,, .,, on,, jump,, in,, A,, be,, and,\n",
      "Nearest to front, A,, .,, person,, on,, jump,, in,, the,, player,\n",
      "Nearest to its, .,, on,, person,, man,, in,, be,, blue,, with,\n",
      "Nearest to small, .,, on,, man,, in,, the,, person,, be,, player,\n",
      "Nearest to grass, in,, man,, .,, water,, person,, on,, blue,, player,\n",
      "Nearest to Three, on,, jump,, in,, of,, be,, person,, .,, skateboard,\n",
      "Nearest to over, on,, in,, person,, .,, jump,, man,, and,, with,\n",
      "Nearest to ball, A,, in,, man,, jump,, person,, player,, .,, on,\n",
      "Nearest to watch, in,, jump,, man,, on,, .,, person,, be,, watch,\n",
      "Nearest to boy, man,, person,, A,, .,, player,, in,, bike,, on,\n",
      "Nearest to child, man,, in,, be,, person,, .,, bike,, on,, skateboard,\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Average loss at step 6200 1.0774953342676163\n",
      "Average loss at step 6400 0.9473726613521576\n",
      "Average loss at step 6600 1.107222585439682\n"
     ]
    }
   ],
   "source": [
    "batch_size = 16\n",
    "embedding_size = 512\n",
    "skip_window = 1\n",
    "num_skips = 2\n",
    "num_sampled = 64\n",
    "\n",
    "valid_size = 16\n",
    "valid_windows = 100\n",
    "valid_examples = np.random.choice(valid_windows,valid_size, replace = False)\n",
    "\n",
    "graph = tf.Graph()\n",
    "\n",
    "with graph.as_default():\n",
    "    train_inputs = tf.placeholder(tf.int32, shape=[batch_size])\n",
    "    train_labels = tf.placeholder(tf.int32, shape=[batch_size,1])\n",
    "    valid_dataset = tf.constant(valid_examples, dtype=tf.int32)\n",
    "\n",
    "    with tf.device('/cpu:0'):\n",
    "        embeddings = tf.Variable(tf.random_uniform([vocabulary_size,embedding_size], -1.0, 1.0))\n",
    "        embed = tf.nn.embedding_lookup(embeddings,train_inputs)\n",
    "\n",
    "        nce_weights = tf.Variable(tf.truncated_normal([vocabulary_size,embedding_size],stddev=1.0/math.sqrt(embedding_size)))\n",
    "        nce_biases = tf.Variable(tf.zeros(vocabulary_size))\n",
    "\n",
    "    loss = tf.reduce_mean(tf.nn.nce_loss(weights = nce_weights,biases=nce_biases,\\\n",
    "        labels=train_labels,inputs=embed, num_sampled=num_sampled,num_classes=vocabulary_size))\n",
    "\n",
    "    optimizer = tf.train.GradientDescentOptimizer(1.0).minimize(loss)\n",
    "\n",
    "    norm = tf.square(tf.reduce_sum(tf.square(embeddings), 1, keep_dims = True))\n",
    "    normalized_embeddings = embeddings/norm\n",
    "    valid_embedding = tf.nn.embedding_lookup(normalized_embeddings,valid_dataset)\n",
    "\n",
    "    similarty = tf.matmul(valid_embedding, normalized_embeddings, transpose_b=True)\n",
    "\n",
    "    init = tf.global_variables_initializer()\n",
    "\n",
    "num_steps = 30001\n",
    "\n",
    "with tf.Session(graph=graph) as session:\n",
    "    init.run()\n",
    "    print(\"Initialized\")\n",
    "\n",
    "    average_loss = 0\n",
    "    for step in xrange(num_steps):\n",
    "        batch_inputs, batch_labels = generate_batch(batch_size, num_skips, skip_window)\n",
    "        feed_dict = {train_inputs:batch_inputs, train_labels:batch_labels}\n",
    "        _, loss_val = session.run([optimizer, loss], feed_dict=feed_dict)\n",
    "\n",
    "        average_loss += loss_val\n",
    "\n",
    "        if step % 200 == 0:\n",
    "            if step > 0:\n",
    "                average_loss = average_loss / 2000\n",
    "            print('Average loss at step', step, average_loss)\n",
    "            average_loss = 0\n",
    "\n",
    "        if step % 1000 == 0:\n",
    "            sim = similarty.eval()\n",
    "            for i in xrange(valid_size):\n",
    "                valid_word = reversed_dictionary[valid_examples[i]]\n",
    "                top_k = 8\n",
    "                nearst = (-sim[i,:]).argsort()[1:top_k+1]\n",
    "                log_str = \"Nearest to %s\" % valid_word\n",
    "                for k in xrange(top_k):\n",
    "                    closed_word = reversed_dictionary[nearst[k]]\n",
    "                    log_str = \"%s, %s,\" % (log_str, closed_word)\n",
    "                print(log_str)\n",
    "\n",
    "        final_embeddings = normalized_embeddings.eval()\n",
    "        np.save('./data/embeddings.npy',final_embeddings)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_with_labels(low_dim_embs, labels, filename):\n",
    "    #assert low_dim_embs.shape[0] > len(labels), 'More labels than embeddings'\n",
    "    plt.figure(figsize = (18,18))\n",
    "    for i, label in enumerate(labels):\n",
    "        x, y = low_dim_embs[i,:]\n",
    "        plt.scatter(x, y)\n",
    "        plt.annotate(label, xy=(x,y),xytext=(5,2),textcoords = 'offset points', ha = 'right', va='bottom')\n",
    "    plt.savefig(filename)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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gAwcODAPP/xw5s6d+86eIAC8wzyjAQDgd1RV9Yaf67p+zffJ2jjxnve8J1OmTMndd9/dfnXDW6nrOhdccEH+4i/+YuOGBoAOxBUNAAC/44knnsj06dOTJD/+8Y9z8MEHt3930EEHZerUqXn88ceTJIsWLWr/7owzzsipp56aj3/84+ncuXOSZMSIEbnqqquSJKtXr85LL7203m+NHDky48aNy5IlS5IkTz/9dJ577rl37uQAYBMQGgAAfsd+++2XH/7wh2lubs6iRYvab31Ikl69euWaa67Jxz72sbS0tOSkk05q/+6YY47JkiVL2m+bSJKxY8fm1ltvTb9+/TJo0KDMmTNnvd86/PDD84lPfCIHHXRQ+vXrlxNPPDEvv/zyO3+SAPAOquq6bvQM7VpbW+tXn+gMALA5aWtry5e+9KVMmzbtbe9z431P54pfPpL5i5dlt522zfkj98lxA973Dk4JAH+4qqpm1HXd+lbbeUYDAMBG+sY3vpGrrrrqbT+bIVkbGS74yQNZtnJ1kuTpxctywU8eSBKxAYDNmisaAAAaYMg3puTpxctes/6+nbbNHV/5SAMmAoA393avaPCMBgCABpj/OpHhzdYBYHMhNAAANMBuO227QesAsLkQGgAAGuD8kftk23d1Xm9t23d1zvkj92nQRABQhodBAgA0wKsPfPTWCQC2NEIDAECDHDfgfcICAFsct04AAAAAxQgNAAB0KN/5zneydOnSYse78cYb8+CDDxY7HgBvTmgAAKBDebPQsHr16g0+ntAAsGkJDQAANMwrr7ySo446Ki0tLenbt2/+5m/+JvPnz8+hhx6aQw89NEmy/fbb55JLLsngwYMzffr0zJgxI8OGDcugQYMycuTILFiwIEny6KOP5ogjjsigQYMydOjQPPzww7nzzjvzH//xHzn//PPTv3//PProo408XYCtgodBAgDQMDfffHN22223/PznP0+SvPjii7n22mtz6623pmfPnknWxoi+ffvmsssuy8qVKzNs2LBMmjQpvXr1yoQJE3LRRRdl3LhxOeuss3L11Vfngx/8YO6+++6cc845mTJlSo455pgcffTROfHEExt5qgBbDaEBAICG6devX84777yMHj06Rx99dIYOHfqabTp37pwTTjghSfLII49k9uzZOeyww5KsvZWid+/eWbJkSe6888782Z/9Wft+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ZpK1t07cd999mTNnTnbbbbcMGTIkd9xxRwYPHpzPf/7zmTRpUnr16pUJEybkoosuyrhx45KsvTJi6tSpjTw9ANiiCA1sMl16915728TrrAPAm7n99ttz/PHHp3v37kmSj33sY5k2bdprtjvggAPy/ve/P0nSv3//zJs3LzvttFNmz56dww47LEmyevXq9P6d/+456aSTNsEZAMDWQ2hgk9n1S1/MgosvWe/2iapbt+z6pS82cCoANgdv9y1ZXbt2bf9z586ds2rVqtR1naampkyfPv1193k1XgAAZXhGA5vMjn/6p+n9t5ely267JVWYjtFIAAAgAElEQVSVLrvtlt5/e1l2/NM/bfRoAHRwhxxySG688cYsXbo0r7zySn76059myJAhefnll99y33322ScLFy5sDw0rV67MnDlz3umRAWCr5YoGNqkd//RPhQUANtjAgQMzatSoHHDAAUmSM844I4MGDcqQIUPSt2/fHHnkkTnqqKNed99tttkmEydOzLnnnpsXX3wxq1atyhe/+MU0NTVtylMAgK1G9XYvRdwUWltb67a2tkaPAQBsyWZdn/zqsuTFp5Id35+MuCRp/nijpwKADq+qqhl1Xbe+1XauaAAAth6zrk9uOjdZuWzt5xefXPs5ERsAoBDPaAAAth6/uuz/IsOrVi5buw4AFCE0wCb23e9+N/vtt19OOeWURo8CsPV58akNWwcANphbJ2ATu/LKK/OLX/wie+65Z6NHAdj67Pj+tbdLvN46AFCEKxpgEzr77LPz2GOP5Zhjjsk3v/nNfPjDH86AAQPy4Q9/OI888kiSZPXq1TnvvPPSr1+/NDc35+///u+TJDNmzMiwYcMyaNCgjBw5MgsWLGjkqQBsnkZckrxr2/XX3rXt2nUAoAhvnYBNrE+fPmlra8s222yT7bbbLl26dMnkyZNz1VVX5YYbbshVV12VyZMnZ8KECenSpUsWLVqUHj16ZNiwYZk0aVJ69eqVCRMm5Je//GXGjRvX6NMB2Px46wQA/EG8dQI6uBdffDGf/OQnM3fu3FRVlZUrVyZJJk+enLPPPjtduqz9x3OXXXbJ7NmzM3v27Bx22GFJ1l710Lt374bNDrBZa/64sAAA7yChARrk4osvzqGHHpqf/vSnmTdvXoYPH54kqes6VVWtt21d12lqasr06dMbMCkAAMDb5xkN0CAvvvhi3ve+9yVJfvCDH7SvH3744bn66quzatWqJMmiRYuyzz77ZOHChe2hYeXKlZkzZ84mnxkAAOCtCA3QIH/913+dCy64IEOGDMnq1avb188444x84AMfSHNzc1paWvKv//qv2WabbTJx4sSMHj06LS0t6d+/f+68884GTg8AAPD6PAwSAAAAeEseBglbkFfuey4v/XJeVi9ekc47dc0OI/uk+4BdGz0WAADAawgN0MG9ct9zWfyTualXrkmSrF68Iot/MjdJxAYAAKDD8YwG6OBe+uW89sjwqnrlmrz0y3mNGQgAAOBNCA3Qwa1evGKD1gEAABpJaIAOrvNOXTdoHQAAoJGEBujgdhjZJ9W71v9HtXpXp+wwsk9jBgIAAHgTHgYJHdyrD3z01gkAAGBzIDTAZqD7gF2FBQAAYLPg1gkAAACgGKEBAAAAKEZo2ALcdtttOfrooxs9BgAAAAgNHUFd11mzZk2jxwAAAICNJjQ0yLx587LffvvlnHPOycCBA/OjH/0o/fr1S9++fTN69Oj27T772c+mtbU1TU1N+drXvta+fvPNN2fffffNwQcfnJ/85CeNOAUAAAB4DaGhgR555JGcfvrp+fnPf56LL744U6ZMycyZM3PPPffkxhtvTJJcfvnlaWtry6xZszJ16tTMmjUry5cvz5lnnpmbbrop06ZNyzPPPNPgMwEAAIC1hIYG2mOPPXLggQfmnnvuyfDhw9OrV6906dIlp5xySn79618nSa6//voMHDgwAwYMyJw5c/Lggw/m4Ycfzp577pkPfvCDqaoqp556aoPPBAAAANbq0ugBtmbdu3dPsvYZDa/n8ccfz5gxY3LPPfdk5513zqhRo7J8+fIkSVVVm2xOAAAAeLtc0dABDB48OFOnTs3zzz+f1atX58c//nGGDRuWl156Kd27d8+OO+6YZ599Nr/4xS+SJPvuu28ef/zxPProo0mSH//4x40cHwAAANq5oqED6N27d77+9a/n0EMPTV3X+ehHP5pjjz02STJgwIA0NTVlr732ypAhQ5Ik3bp1yzXXXJOjjjoqPXv2zMEHH5zZs2c38hQAAAAgSVK90WX7jdDa2lq3tbU1egzWmT9/fs4999xMnDgxt912W8aMGZOf/exnjR4LAACABqiqakZd161vtZ0rGjZDD027NdP+7bq8/MLz6fHunhl68unZb+ihxX9nt912y8SJE4sfFwAAgC2XZzRsZh6admtuueYf8vLzC5O6zsvPL8wt1/xDHpp26xvu88orr+Soo45KS0tL+vbtmwkTJqRPnz658MILc9BBB6W1tTX33ntvRo4cmb333jtXX311kmTevHnp27fv6x7v05/+dPbff/8MGDAgkyZNesfOFwAAgM2L0LCZmfZv12XVb1est7bqtysy7d+ue8N9br755uy22265//77M3v27BxxxBFJkt133z3Tp0/P0KFDM2rUqEycODF33XVXLrnkkjed4fLLL89HPvKR3HPPPbn11ltz/vnn55VXXtn4kwMAAGCzJzRsZl5+4fkNWk+Sfv36ZfLkyRk9enSmTZuWHXfcMUlyzDHHtH8/ePDg9OjRI7169Uq3bt2yePHiNzzeLbfckm984xvp379/hg8fnuXLl+eJJ57YiLMCAABgS+EZDZuZHu/uufa2iddZfyMf+tCHMmPGjPznf/5nLrjgghx++OFJkq5duyZJOnXq1P7nVz+vWrXqDY9X13VuuOGG7LPPPn/oaQAAALCFckXDZmboyaenyzZd11vrsk3XDD359DfcZ/78+dluu+1y6qmn5rzzzsu99967UTOMHDkyf//3f59X31hy3333bdTxAAAA2HIIDZuZ/YYemsPP+lx69OyVVFV69OyVw8/63Ju+deKBBx7IAQcckP79++fyyy/PV7/61fbvhg8fnscff3yDZrj44ouzcuXKNDc3p2/fvrn44ov/4PMBAABgy1K9+v9KdwStra11W1tbo8fo8FatWpUuXcrc9TJ8+PCMGTMmra1v+SpUAAAAtmJVVc2o6/ot/8ejKxo6qOuuuy7Nzc1paWnJaaedllGjRuWv/uqvcuihh2b06NFZtGhRjj322DQ3N+fAAw/MrFmzkqx9sOPixYtT13Xe/e5357rr1r6N4rTTTsvkyZOzbNmynHzyyWlubs5JJ52UZcuWbdBcC56ZlDvuGJpfTfmj3HHH0Cx4xqstAQAA+D9CQwc0Z86cXH755fnoRz+aFStW5Mknn8zUqVNz8803Z82aNenatWv69euX5cuX56abbsqKFSsyePDgjBgxIi0tLbnjjjty3HHHZeedd860adOSJOPHj8+BBx6YL3/5y7ntttuy995755577sk999yTNWvWvK25FjwzKQ8/fFGWr5ifpM7yFfPz8MMXiQ0AAAC0Exo6oClTpmTIkCG5+eabc9999+Wmm27KCy+8kObm5lRVlcWLF2fXXXfNVVddlc997nP54he/mJ49e+b444/PQw89lF//+td59tlnc/jhh+eBBx7I008/naqqsv3222fWrFlZtGhRvvWtb2Xu3LnZfvvtc+utt76tuR57dEzWrFn/Cog1a5blsUfHvBN/GwAAANgMCQ0dUF3Xeeqpp3Lsscdm2223TY8ePbL77rtnm222SZKcdNJJ7W98mD59ej7xiU8kSf78z/88jz32WKZNm5Znn302TU1N6dWrVyZOnJhOnf7vP+p99903e+21Vzp37pydd945M2fOfFtzLV+xYIPWN8S8efPSt2/f16xfcsklmTx58kYfHwAAgE1DaOiARowYkZkzZ2bp0qVJkkWLFq33fffu3XPIIYdk/PjxSZKpU6emZ8+e2WGHHdKlS5c8//zzWbJkSXr16pWDDz44Y8aMaQ8Tzc3NWbhwYZJk9uzZeeqpp1JV1duaq1vX3q9ZO+UTT2T5sp6vWf/whz/89k/4TVx22WX5kz/5kyLHAgAA4J0nNHRATU1N+exnP5t/+Id/SHNzcz7/+c/nqaeeWm+bSy+9NG1tbfntb3+bs88+Oz/84Q8zfvz4HHzwwRk8eHB69+6dGTNmZOjQoXn66aezevXqJMmxxx6b5557Lvvuu2+++c1vpkePHmlpaXlbc+2193np1Gnb31utskefv3zNtnfeeefbPt+6rrNmzZqsXr06Z555ZpqamnL44Ydn2bJlGTVqVCZOnJgk6dOnTy688MIcdNBBaW1tzb333puRI0dm7733ztVXX/22fw8AAIB3jtDQQf3N3/xNRo8enRUrVmThwoU5+uijM3To0Pbvd9lll0yaNCmzZs3KBz7wgZx66qn50Y9+lLFjx+ZHP/pR/uu//itTp07NF7/4xYwePTrdu3dPknTt2jXDhg1LS0tLZsyYkZNPPjnnn3/+25pphx5/ksv/n275i7OeyRmfeTJ33P6uvOtdO+W97zkyy5YtyxFHHJHvfe97SZLtt9++fb8rrrgi+++/f5qbm/O1r30tydpbJfbbb7+cc845GThwYObPn5+5c+fmL//yLzNnzpzstNNOueGGG14zw+67757p06dn6NCh7RHirrvuyiWXXPIH/70GAACgnC6NHoA3dt555+XSSy/N0qVL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vpyEhATmzZunGg0i8otnGMYKy7IyT7ufgga50K655hry8vIoLy/n8ccfZ+jQoSH/jM1L97P4s60UHS4jMs7FVTc1pml7hRkiIiIiIiI/1ZkGDSoGKRfc0boM58vmpfuZ+8FGfOUBAIoOlzH3g40AChtERETkjKxZs4avvvqK/Px8YmJi6N69O+np6dXdLRGRS4JqNMjPzuLPtlaGDEf5ygMs/mxrNfVIRERELiVr1qxh5syZ5OfnA5Cfn8/MmTNZs2ZNNfdMROTSoKBBfnaKDpedVbuIiIjI8b766iu8Xm+VNq/Xy1dffVVNPRIRubQoaJCfncg411m1i4iIiBzv6EiGM20XEZGqFDTIz85VNzXG7qz6q2132rjqpsbV1CMRERG5lMTExJxVu4iIVKWgQX52mrZPpOvgyytHMETGueg6+HIVghQREZEz0r17dxwOR5U2h8NB9+7dq6lHIiKXFq06IT9LTdsnKlgQERGRn+To6hJadUJE5KdR0CAiIiIi8gPp6ekKFkREfiJNnRARERERERGRkFHQICIiIiIiIiIho6BBREREREREREJGQYOIiIiIiIiIhIyCBhEREREREREJGQUNIiIiIiIiIhIyChpEREREREREJGQUNIiIiIiIiIhIyChoEBEREREREZGQUdAgIiIiIiIiIiGjoEFEREREREREQkZBg4iIiIiIiIiEjIIGEREREREREQkZBQ0iIiIiIiIiEjIKGkREREREREQkZBQ0iIiIiIiIiEjIKGgQERERERERkZBR0CAiIiIiIiIiIaOgQURERERERERCRkGDiIiIiIiIiISMggYRERERERERCRkFDSIiIiIiIiISMgoaRERERERERCRkFDSIiIiIiIiISMgoaBARERERERGRkFHQICIiIiIiIiIho6BBREREREREREJGQYOIiIiIiIiIhIyCBhEREREREREJGQUNIiIiIiIiIhIyChpEREREREREJGQUNIiIiIiIiIhIyChoEBEREREREZGQUdAgIiIiIiIiIiGjoEFEREREREREQkZBg4iIiIiIiIiEjIIGEREREREREQkZBQ0iIiIiIiIiEjIKGkREREREREQkZBQ0iIiIiIiIiEjIKGgQERERERERkZBR0CAiIiIiIiIiIaOgQURERERERERCRkGDiIiIiIiIiISMggYRERERERERCRkFDSIiIiIiIiISMgoaRERERERERCRkFDSIiIiIiIiISMgoaBARERERERGRkFHQICIiIiIiIiIho6BBREREREREREJGQYOIiIiIiIiIhIyCBhEREREREREJmXMKGgzDeNkwjI2GYawxDONTwzBij9s20jCM7w3D2GQYRu9z76qIiIiIiIiIXOzOdUTDf4E0y7LSgc3ASADDMJoDtwEtgGuBiYZhmOf4WSIiIiIiIiJykTunoMGyrC8ty/JVvF0CJFe8vgn40LKsMsuytgPfA+3O5bNERERERERE5OIXyhoNdwNfVLyuC+w+btueijYRERERERER+Rmzn24HwzBmA4kn2TTKsqzPKvYZBfiAD44edpL9rVOc/z7gPoD69eufQZdFRERERERE5GJ12qDBsqweP7bdMIy7gBuA7pZlHQ0T9gD1jtstGcg+xfnfAd4ByMzMPGkYISIiIiIiIiKXhnNddeJa4AngRsuySo7b9E/gNsMwXIZhNASaAN+ey2eJiIiIiIiIyMXvtCMaTuNNwAX81zAMgCWWZd1vWdZ6wzCmARsITql4wLIs/zl+loiIiIiIiIhc5M4paLAs67If2TYOGHcu5xcRERERERGRS0soV50QERERERERkV84BQ0iIiIiIiIi50leXh4TJ06s7m5cUAoaRERERERERM6TX2LQcK7FIEVERERERETkFJ588km2bt1KRkYGPXv2BOCLL77AMAyefvppBg0aVM09DD2NaBARERERERE5T1588UUaN25MVlYWV155JVlZWaxevZrZs2czYsQI9u3bV91dDDkFDSIiIiIiIiIXwMKFC/nVr36FaZrUrl2bLl26sGzZsuruVsgpaBARERERERG5ACzLqu4uXBAKGkRERERERETOk6ioKAoLCwHo3LkzU6dOxe/3k5OTw9dff027du2quYehp2KQIiIiIiIiIudJfHw8HTp0IC0tjT59+pCenk6rVq0wDIOXXnqJxMTE6u5iyBkX09CNzMxMa/ny5dXdDRERkTPy3HPPERkZyfDhw6u7KyIiIiLnnWEYKyzLyjzdfhrRICIiEkI+nw+7Xf95FRERkRN9t2AuCz6cQmHuIaLiE+h02xCadepa3d0KOdVoEBEROQvjxo0jNTWVHj16sGnTJgCuueYannrqKbp06cLrr79OTk4OAwYM4IorruCKK65g0aJFAMyfP5+MjAwyMjJo3bo1hYWF7Nu3j86dO5ORkUFaWhoLFiyozssTERGR8+S7BXP58p03KTyUA5ZF4aEcvnznTb5bMLe6uxZy+pOLiIjIGVqxYgUffvghq1atwufz0aZNG9q2bQtAXl4e8+fPB+D222/nscceo2PHjuzatYvevXvz3XffMX78eN566y06dOhAUVERbrebd955h969ezNq1Cj8fj8lJSXVeYkiIiJyniz4cAq+8rIqbb7yMhZ8OOVnN6pBQYOIiMgZWrBgATfffDPh4eEA3HjjjZXbBg0aVPl69uzZbNiwofJ9QUEBhYWFdOjQgWHDhjF48GD69+9PcnIyV1xxBXfffTder5d+/fqRkZFx4S5IRERELpjC3ENn1X4p09QJERGRs2AYxknbIyIiKl8HAgEWL15MVlYWWVlZ7N27l6ioKJ588knee+89PB4PV155JRs3bqRz5858/fXX1K1blzvvvJMpU6ZcqEsRERGRCygqPuGs2i9lChpERETOUOfOnfn000/xeDwUFhYyc+bMk+7Xq1cv3nzzzcr3WVlZAGzdupWWLVvyxBNPkJmZycaNG9m5cye1atXi3nvv5Te/+Q0rV668INciIiIiF1an24Zgd7qqtNmdLjrdNqSaenT+aOqEiIjIGWrTpg2DBg0iIyODBg0a0KlTp5PuN2HCBB544AHS09Px+Xx07tyZt99+m9dee425c+dimibNmzenT58+fPjhh7z88ss4HA4iIyM1okFERORn6mgdhl/CqhOGZVnV3YdKmZmZ1vLly6u7GyIiIhfEjFV7eXnWJrLzPNSJDWNE71T6ta5b3d0SEREROSnDMFZYlpV5uv00okFERKQazFi1l5GfrMXj9QOwN8/DyE/WAihsEBERkUuaajSIiIhUg5dnbaoMGY7yeP28PGtTNfVIREREJDQUNIiIiFSD7DzPWbWLiIiIXCoUNIiIiFSDOrFhZ9UuIiIicqlQ0CAiIlINRvROJcxhVmkLc5iM6J1aTT0SERERCQ0VgxQREakGRws+atUJERER+blR0CAiIlJN+rWuq2BBREREfnY0dUJEREREREREQkZBg4iIiIiIiIiEjIIGEREREREREQkZBQ0iIiIiIiIiEjIKGkREREREREQkZBQ0iIiIiIiD135ZAAAPAklEQVSIiEjIKGgQERERERERkZBR0CAiIiIiIiIi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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x12828be0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "try:\n",
    "    from sklearn.manifold import TSNE\n",
    "    import matplotlib.pyplot as plt\n",
    "\n",
    "    tsne = TSNE(perplexity=30, n_components=2, init='pca', n_iter=1000, method='exact')\n",
    "    plot_only = 500\n",
    "    low_dim_embs = tsne.fit_transform(final_embeddings[:plot_only, :])\n",
    "    labels = [reversed_dictionary[i] for i in xrange(plot_only)]\n",
    "    plot_with_labels(low_dim_embs, labels, 'tsne.png')\n",
    "except Exception as ex:\n",
    "    print(ex)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
